package command;

/**
 * 命令模式
 * 支将一个请求封装为一个对象，从而使你可用不同的请求对客户进行参数化；
 * 对请求排队或记录请求日志，以及持可撤消的操作
 */
public class Client {

    /**
     * old:invoker-->receiver
     * now:invoker-->command-->receiver
     * 个人感觉，就是中间加了一层，实现invoker和receiver达到解耦
     */
    public static void main(String[] args) {

        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();

        invoker.setCommand(command);
        invoker.notifyCommand();
    }
}
